<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Object.create</title>
</head>

<body>
    <script>
        //声明一个对象
        var car = {
            name: '汽车'
        };

        //创建一个新的对象
        var byd = Object.create(car, {
            //新增一个品牌的属性
            brand: {
                //设置当前属性的属性值   默认值是 false
                value: '比亚迪',
                //设置该属性是否可以修改   默认值是 false
                writable: false,
                //设置该属性是否可以删除   默认值是 false
                configurable: false,
                //设置该属性是否可以枚举(遍历)
                enumerable: true
            },
            //getter  setter
            price: {
                // 函数去管理属性值  getter 方法
                get: function(){ //特别的函数, 当访问当前对象的 price 属性时自动执行, 该函数的返回值将作为该属性的属性值
                    // console.log('执行啦~~~')
                    // return 150000;
                    return this.v;
                },
                // setter
                set: function(v){//特别的函数, 当设置当前对象的 price 属性时自动执行, 该函数在执行时会自动接受设置的新值
                    // this 是指向新创建的对象的
                    //将属性保存起来
                    this.v = v;
                },
                enumerable: false

            }
        });

        //修改 byd 的 brand 属性
        // byd.brand = 'BIYADI';
        //删除 byd 的 brand 属性
        // delete byd.brand;
        //遍历 byd 对象
        for(var i in byd){
            console.log(i);
        }

        //访问byd对象的 price 属性
        // console.log(byd.price);

        //修改 byd 对象的 price 属性
        // byd.price = 300000;

        // console.log(byd.price);



        // console.log(byd);


        
</script>
</body>

</html>